/*
 * @lc app=leetcode.cn id=376 lang=javascript
 *
 * [376] 摆动序列
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @return {number}
 */
var wiggleMaxLength = function(nums) {
  // let pre = 0
  // let res = []
  // let flag = undefined
  // res.push(nums[0])
  // for (let i = 1; i < nums.length; i++) {
  //   const n = nums[i]
  //   const p = nums[pre]
  //   if (n === p) {
  //     continue
  //   }
  //   if (flag === undefined) {
  //     flag = n - p > 0 ? false : true
  //     pre = i
  //     res.push(nums[i])
  //   } else if ((flag && n - p > 0) || (!flag && n - p < 0)) {
  //     flag = !flag
  //     pre = i
  //     res.push(nums[i])
  //   }
  // }
  // return res.length
  const n = nums.length;
    if (n < 2) {
        return n;
    }
    let prevdiff = nums[1] - nums[0];
    let ret = prevdiff !== 0 ? 2 : 1;
    for (let i = 2; i < n; i++) {
        const diff = nums[i] - nums[i - 1];
        if ((diff > 0 && prevdiff <= 0) || (diff < 0 && prevdiff >= 0)) {
            ret++;
            prevdiff = diff;
        }
    }
    return ret;
};
// @lc code=end

